Список изменений Standard Peripherals Library для МК 1986ВЕ8(1)Т.

--------------------------------------------------------------------------------

v.0.5 18.01.2023

Добавлено:
    1. Разработан драйвер блока SpaceWire.
    2. Добавлен пример spw_loopback.
    3. В файле mdr32f8_ebc.c:
        1) В функциях EBC_RGNx_Addr_serial_ECC() и EBC_RGNx_WSConfig() добавлены барьеры синхронизации данных.
        2) В функции EBC_RGNx_Cmd().
    4. В примере rlos_led добавлено примечание о конфигурации RTOS.
    5. Добавлена поддержка FPU и MPU в файле просмотра периферии SVD.
    6. В драйвере DMA добавлена поддержка настройки реальных и виртуальных каналов.
    7. В файле mdr32f8_eth.h добавлены недостающие макроопределения для частот.

Изменено:
    1. В файле MDR32F8_tim.h:
        1) Измены события TIMER_EvSrc_TM1-4 на TIMER_EvSrc_TMR_EVENT0-3;
        2) TIMER_EvSrc_ETR(0x8) заменен на TIMER_EvSrc_ETR_RE(0x8) и TIMER_EvSrc_ETR_FE(0x9);
        3) Скорректированы описания полей и макроопределений для соответствия спецификации.
        4) Нумерация каналов изменена с TIMER_CHANNEL0-3 на TIMER_CHANNEL1-4.
        5) Исправлена разрадность предделителя TIMER_Prescaler с uint16_t на uint32_t.
    2. В файле mdr32f8_ebc.c:
        1) Исправлена запись в регисты xxx_CNTRL регионов в функции EBC_RGNx_Init().
    3. В файле mdr32f8_eth.c в функции ETH_init() исправлен сдвиг параметра ETH_Short_Frames_Reception.
    4. В примере eth_loopback исправлены обнаруженные опечатки, ошибки и недоработки.
    5. В примере can_transceive расширено описание в readme и добавлен циклический режим работы.
    6. В файле mdr32f8_adc.c:
        1) Исправлено использование ADC_InitStruct->ADC_SELR в функции ADC_Init();
        2) Актуализированы описания функций.
    7. В файле mdr32f8_adc.h изменено значение макроопределения ADCx_CONFIG1_PAUSE_NOPAUSE.
    8. В файле mdr32f8_eth.c для функции ETH_SendFrame() для актоматического режима (ETH_BUFFER_MODE_AUTOMATIC_CHANGE_POINTERS) добавлен запрет (с последующим разрешением) прерываний на время отправки фрейма.
    9. В файле mdr32f8_config.h изменена функция assert_param() в связи с удалением mdr32f8_lib.h.
    10. В файле mdr32f8_milstd.c исправлено макроопределение MR_EN_Reset, используемое в функции MIL_STD_1553_Cmd().
    11. В файле mdr32f8_can.h исправлен комментарий макроопределения CAN_STATUS_PRIOR_0.
    12. В файле MDR1986VE8T.h испоавлены макроопределения EB_CNTR_WS_ACTIVE и EB_CNTR_WS_SETUP.
    13. В файле mdr32f8_clkctrl.c функция CLKCTRL_DeInit() записывает в регистр PER0_CLK значение по сбросу.
    14. В файле mdr32f8_port.h объявлен прототип недостающей функции PORT_WriteBit().
    15. В файле mdr32f8_uart.h:
        1) Исправлено использование конструкции extern "C" {}.
        2) Исправлено макроопределение источника частоты UART_CLKSRC_MAX_CLK.
    16. В файле mdr32f8_dac.h исправлено макроопределение источника частоты DAC_CLKSRC_MAX_CLK.

Удалено:
    1. В файле MDR32F8_tim.h убрано макроопределение TIMER_CntMode_EvtChangeDir.
    2. В примере dac_dma_pingpong убрана повторная инициализация DMA.
    3. В файле mdr32f8_eth.h убрано смещение в макроопределениях ETH_PHY_CONTROL_ххх, которое осуществляется на стороне функции ETH_Init().
    4. В файле mdr32f8_adc.h убрано неиспользуемое макроопределение ADCx_CONFIG0_EXT_GO_SEL_ADC_GO.
    5. Файл mdr32f8_lib.h удален.
    6. В файлах mdr32f8_arinc_rx.h, mdr32f8_can.h, mdr32f8_eth.h, mdr32f8_milstd.h, mdr32f8_ssp.h и mdr32f8_tim.h удалены неиспользуемые макроопределения.

--------------------------------------------------------------------------------

v.0.4.1 26/08/2020

Добавлено:
    1. В примерах добавлена разблокировка модуля BKP для корректной установки режима работы LDO регуляторов.

Изменено:
    1. Скорректирован mdr32f8_config.h.
    2. Скорректированы:
        1) mdr32f8_dma.h
        2) mdr32f8_dma.c
        3) mdr32f8_tim.h
        4) mdr32f8_tim.c

--------------------------------------------------------------------------------

v.0.4 01/08/2020

Добавлено:
    1. В файле mdr32f8_ebc.c добавлены новые функции:
        - void EBC_RGNx_Addr_serial_ECC (uint32_t RGNx, uint32_t addr);
        - void EBC_RGNx_ECCS_Config ( uint32_t RGNx, uint32_t EBC_IT_FIX, FunctionalState NewState);
        - uint32_t EBC_RGNx_GetErrorCount (uint32_t RGNx, Cnt_type CNT);
        - __RAMFUNC void EBC_RGNx_WSConfig(uint32_t RGNx, uint32_t RGN_WS_SETUP, uint32_t RGN_WS_ACTIVE, uint32_t RGN_WS_HOLD) __attribute__((section("EXECUTABLE_MEMORY_SECTION")));
    2. В файле spec.c добавлены новые функции:
        - void UNLOCK_UNIT (unit_type unit );
        - void LOCK_UNIT (unit_type unit);

Изменено:
    1. Исплавлено выставление частоты блока PLL и мелкие ошибки в примерах:
        1) adc_go;
        2) eth_loopback;
        3) led_button_exti;
        4) MIL_STD_1553_valmess;
        5) rtos_led;
        6) spi_mastermode;
        7) tim_pwm.
    2. В файлах mdr32f8_adc.h, mdr32f8_can.h, mdr32f8_dac.h, mdr32f8_eth.h, mdr32f8_ssp.h, mdr32f8_uart.h, mdr32f8_clkctrl.h, mdr32f8_tim.h исправлены константы задания делителей частоты
    3. В файле mdr32f8_uart.h скорректированы прототипы измененных функций.
    4. В файле mdr32f8_clkctrl.h:
        1) Добавлены константы задания делителя Q и делителя Q+DV для блока PLL;
        2) Убраны лишние константы PLL3-PLL7.
    5. В файле mdr32f8_ebc.h:
        1) Добавлены прототипы новых функций;
        2) Добавлено переопределение типа функции выбора счетчика двойных/одиночных ошибок.
    6. В файле mdr32f8_port.h объявлены прототипы недостающих функций.
    7. В файле mdr32f8_tim.h исправлены константы задания номеров каналов таймера в соответствии с документацией.
    8. В файле mdr32f8_clkctrl.c:
        1) Исправлены константы для задания масок;
        2) Скорректированы функции:
            - void CLKCTRL_HSEconfig(uint32_t CLKCTRL_HSE);
            - void CLKCTRL_CPU_PLLconfig (uint32_t PLLn, uint32_t CLKCTRL_CPU_PLLsource, uint32_t CLKCTRL_PLLn_CLK_PLLn_Q, uint32_t CLKCTRL_PLLn_CLK_PLLn_N).
    9. В файле mdr32f8_uart.с скорректирована функция void UART_CLK_en(MDR_UART_TypeDef * UARTx, uint32_t UART_CLKSRC, uint32_t UART_CLK_DIV).
    10. В файле system_1986ve8t.c исправлены функция void SystemCoreClockUpdate (void)
    11. Устранена проблема сборки проекта при использовании макроса USE_ASSERT_INFO

--------------------------------------------------------------------------------

v.0.3 06/06/2019

Добавлено:
    1. Пример использования FreeRTOS, исправлены примеры CAN и UART;

Изменено:
    1. Исправлены ошибки в примерах CAN и UART.
    2. Различные исправления ошибок.

--------------------------------------------------------------------------------

v.0.2 20/05/2019

Добавлено:
    1. В файле MDR1986VE8.h добавлены зарезервированные области для обеспечения смещения регистров:
            0х0000_0094     ECCAADR
            0x0000_0098     ECCDATA
            0x0000_009C     ECCECC
    2. В файле Startup.c: Добавлена функция SystemCoreClockUpdate().
    3. Добавлена возможность использования в mdr32f8_clkctrl.c  PLL1, PLL2.

Изменено:
    1. MDR1986VE8.h:
        1) Перенесён контроллер кэш-шины S_BUS( 0x4000b000) к блоку  Cache control ; ( был объявлен в блоке * ROM,RAMC,RAMD control);
        2) Убран контроллер SCR_Conrtol (0xe0043000));
        3) Убраны два лишних регистра FT_STAT0 и FT_STAT1 в блоке FT_CONTROL;
        4) Убран контроллер RAMC_CNTR_BASE    (0x40007000);
        5) Убраны регистры контроллера внешней шины: SPORT_PWR0-3; SPORT_PD0-3; SPORT_CL0-3.
    2. Файл Startup.s скорректирован в соответствии с таблицей векторов прерываний в спецификации.
    3. Исправлены ошибки в примерах adc_go, ARINC429_transceive, dac_dma_pingpong, eth_loopback, ext_bus_RAM (убрана CLKCTRL_PER0_CLKcmd(CLKCTRL_PER0_CLK_MDR_EBC_EN, ENABLE).

Удалено:
    1. В файле MDR1986VE8.h:
        1) Убран контроллер SCR_Conrtol (0xe0043000));
        2) Убраны два лишних регистра FT_STAT0 и FT_STAT1 в блоке FT_CONTROL;
        3) Убран контроллер RAMC_CNTR_BASE    (0x40007000)
        4) Убраны регистры контроллера внешней шины: SPORT_PWR0-3; SPORT_PD0-3; SPORT_CL0-3;
        5) Убран контроллер CRC_Control (адрес 0x400AF000)
        6) Убран блок ECC_BASE (0x400B0000);
        7) Убран блок CRPT_BASE (0x400AE000);
        8) Убраны регистры PLL3-7, CAN1-5, TIM4-5, MIL0-3, ARC0-3, EMAC0-1, SPHY1, SPW1, SPHY0-1, UART2-5, SSP1-5 и добавлены зарезервированные области вместо них, чтобы сохранить смещение в блоке CLK_CNTR;
        9) Убрано описание блока USB (0x4009D000);
        10) Убраны TMR4 (0x4008_E000), TMR5 (0x4008_F000);
        11) Убраны СAN1 (0x4009_1000), СAN2 (0x4009_2000), СAN3 (0x4009_3000), СAN4 (0x4009_4000);
        12) Убраны SSP1 (0x4009_6000), SSP2 (0x4009_7000), SSP3 (0x4009_6000);
        13) Убраны UART2 (0x4009_B000), UART3 (0x4009_C000);
        14) Убран регистр блока UART -  ILPR (BASE_ADDR+0x020) вместо него добавлена зарезервированная область;
        15) Убран SPW1 ( 0x4008_9000);
        16) Убран ETH1 (0x2101_0000);
        17) Убран ARINC1 RX и TX.
    2. В файле mdr32f8_clkctrl.c убраны из функций регистры PLL3-7, CAN1-5, TIM4-5, MIL0-3, ARC0-3, EMAC0-1, SPHY1, SPW1, SPHY0-1, UART2-5, SSP1-5;
    3. В файле mdr32f8_clkctrl.h убраны биты регистра 0-12 регистра PER0_CLK;
    4. Из файла mdr32f8_uart.c убрана из функций запись в регистр UARTx->ILPR;
    5. Из mdr32f8_arinc_rx.c убрана функция void ARINC_CLK_en(uint32_t ARINC_CLK_DIV) (также убран её прототип из mdr32f8_arinc_rx.h);
    6. В файле mdr32f8_eth.c:
        1) Из функций убрано обращение к регистрам EMAC0_CLK;
        2) Убраны функции void ETH_BRGInit(uint32_t ETH_HCLKdiv) и void ETH_ClockCMD (FunctionalState NewState);
    7. Из файла mdr32f8_millstd.c убрана функция void MIL_STD_1553_CLK_en(MIL1553Control * MILx, uint32_t MIL_STD_1553_CLK_DIV).

--------------------------------------------------------------------------------

v.0.1
Первоначальная версия.


